/*
    SUSAN® - Sole of Unix Save ANything

   Copyright (C) 2020-2020 Hechzh Property

   
*/

#ifndef BAREOS_SRC_DIRD_DBCOPY_DATABASE_TYPE_H_
#define BAREOS_SRC_DIRD_DBCOPY_DATABASE_TYPE_H_

class DatabaseType {
 public:
  enum class Enum
  {
    kUndefined,
    kPostgresql,
    kMysql
  };

  static Enum Convert(const std::string& s)
  {
    static const std::map<std::string, DatabaseType::Enum> types{
        {"postgresql", DatabaseType::Enum::kPostgresql},
        {"mysql", DatabaseType::Enum::kMysql}};
    if (types.find(s) == types.cend()) { return Enum::kUndefined; }
    return types.at(s);
  }

  static std::string Convert(Enum e)
  {
    static const std::map<DatabaseType::Enum, std::string> types{
        {DatabaseType::Enum::kPostgresql, "postgresql"},
        {DatabaseType::Enum::kMysql, "mysql"}};
    if (types.find(e) == types.cend()) { return std::string(); }
    return types.at(e);
  }
};

#endif  // BAREOS_SRC_DIRD_DBCOPY_DATABASE_TYPE_H_
